Magick.NET图片处理:解决png转jpg背景色为黑色的问题(设置背景色)


#运行环境:

  • .Net 版本:.Net 5
  • Magick.NET版本:8.2.1
  • 操作系统:Ubuntu 18.04

#问题:

将png图片转为jpg图片时,由于png有透明背景,导致导出的jpg图片背景是黑色的;

#解决方法:

1、方法一:使用ColorAlpha

using (MagickImage imagePng = new MagickImage("image.png"))
{
  //将透明背景改为白色背景输出
  imagePng.ColorAlpha(MagickColors.White);
  imagePng.Write("noTransparency.jpg");
}

2、使用MagickImageCollection+Flatten

using (MagickImageCollection images = new MagickImageCollection())
{
    MagickImage imagePng = new MagickImage("image.png");

    // 'add background',将背景设为红色
    MagickImage background = new MagickImage(MagickColors.Red, imagePng.Width, imagePng.Height);
    images.Add(background);
    // image.png
    images.Add(imagePng);

    // +flatten
    using (MagickImage result = (MagickImage)images.Flatten())
    {
        // noTransparency.png
        result.Write("noTransparency.jpg");
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值